home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 May: Tool Chest / Developer CD Series May 1996 (Tool Chest) (Apple Computer) (1996).iso / Tool Chest / Development Tools & Languages / Dylan Related / Mindy / Mindy 1.2 - portable sources / interp / extern.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-03-15  |  1.3 KB  |  50 lines  |  [TEXT/ttxt]

  1. /**********************************************************************\
  2. *
  3. *  Copyright (C) 1994, Carnegie Mellon University
  4. *  All rights reserved.
  5. *
  6. *  This code was produced by the Gwydion Project at Carnegie Mellon
  7. *  University.  If you are interested in using this code, contact
  8. *  "Scott.Fahlman@cs.cmu.edu" (Internet).
  9. *
  10. ***********************************************************************
  11. *
  12. * $Header: extern.h,v 1.2 94/11/30 16:18:14 rgs Exp $
  13. *
  14. * This file exports definitions for support of raw C pointers.
  15. *
  16. \**********************************************************************/
  17.  
  18.  
  19. struct c_pointer {
  20.     obj_t class;
  21.     void *pointer;
  22. };
  23.  
  24. #define C_PTR(o) obj_ptr(struct c_pointer *, o)
  25.  
  26. struct symtab {
  27.     char *name;
  28.     void *ptr;
  29. };
  30.  
  31. struct foreign_file {
  32.     obj_t class;
  33.     obj_t file_name;        /* relocatable object file */
  34.     int sym_count;
  35.     int extra_size;
  36.     struct symtab syms[1];
  37. };
  38.  
  39. #define FOREIGN_FILE(o) obj_ptr(struct foreign_file *, o)
  40.  
  41. extern obj_t obj_CPointerClass;
  42. extern obj_t /* <foreign-file> */ mindy_explicit_syms;
  43. extern obj_t obj_ForeignFileClass;
  44.  
  45. extern obj_t make_c_pointer(obj_t /* <static-pointer-class> */ cls, void *ptr);
  46. extern void *get_c_object(obj_t obj);
  47. extern obj_t convert_c_object(obj_t class, void *obj, boolean miss_ok);
  48. extern int scav_c_pointer(struct object *obj);
  49. extern obj_t trans_c_pointer(obj_t cptr);
  50.